layui.define(['jquery'], function (exports) {
  var JQuery = layui.jquery;
  /*! iCheck v1.0.2 by Damir Sultanov, http://git.io/arlzeA, MIT Licensed */
  (function (f) {
    function A(a, b, d) {
      var c = a[0], g = /er/.test(d) ? _indeterminate : /bl/.test(d) ? n : k,
          e = d == _update ? {
            checked: c[k],
            disabled: c[n],
            indeterminate: "true" == a.attr(_indeterminate) || "false"
                == a.attr(_determinate)
          } : c[g];
      if (/^(ch|di|in)/.test(d) && !e) {
        x(a, g);
      } else if (/^(un|en|de)/.test(d)
          && e) {
        q(a, g);
      } else if (d == _update) {
        for (var f in e) {
          e[f] ? x(a, f,
              !0) : q(a, f, !0);
        }
      } else if (!b || "toggle" == d) {
        if (!b) {
          a[_callback]("ifClicked");
        }
        e ? c[_type] !== r && q(a, g) : x(a, g)
      }
    }

    function x(a, b, d) {
      var c = a[0], g = a.parent(), e = b == k, u = b == _indeterminate,
          v = b == n, s = u ? _determinate : e ? y : "enabled",
          F = l(a, s + t(c[_type])), B = l(a, b + t(c[_type]));
      if (!0 !== c[b]) {
        if (!d && b == k && c[_type] == r && c.name) {
          var w = a.closest("form"), p = 'input[name="' + c.name + '"]',
              p = w.length ? w.find(p) : f(p);
          p.each(function () {
            this !== c && f(this).data(m) && q(f(this), b)
          })
        }
        u ? (c[b] = !0, c[k] && q(a, k, "force")) : (d || (c[b] = !0), e
        && c[_indeterminate] && q(a, _indeterminate, !1));
        D(a, e, b, d)
      }
      c[n] && l(a, _cursor, !0) && g.find("." + C).css(_cursor, "default");
      g[_add](B || l(a, b) || "");
      g.attr("role") && !u && g.attr("aria-" + (v ? n : k), "true");
      g[_remove](F || l(a, s) || "")
    }

    function q(a, b, d) {
      var c = a[0], g = a.parent(), e = b == k, f = b == _indeterminate,
          m = b == n, s = f ? _determinate : e ? y : "enabled",
          q = l(a, s + t(c[_type])), r = l(a, b + t(c[_type]));
      if (!1 !== c[b]) {
        if (f || !d || "force" == d) {
          c[b] = !1;
        }
        D(a, e, s, d)
      }
      !c[n] && l(a, _cursor, !0) && g.find("." + C).css(_cursor, "pointer");
      g[_remove](r || l(a, b) || "");
      g.attr("role") && !f && g.attr("aria-" + (m ? n : k), "false");
      g[_add](q || l(a, s) || "")
    }

    function E(a, b) {
      if (a.data(m)) {
        a.parent().html(a.attr("style", a.data(m).s || ""));
        if (b) {
          a[_callback](b);
        }
        a.off(".i").unwrap();
        f(_label + '[for="' + a[0].id + '"]').add(a.closest(_label)).off(".i")
      }
    }

    function l(a, b, f) {
      if (a.data(m)) {
        return a.data(m).o[b + (f ? "" : "Class")]
      }
    }

    function t(a) {
      return a.charAt(0).toUpperCase() + a.slice(1)
    }

    function D(a, b, f, c) {
      if (!c) {
        if (b) {
          a[_callback]("ifToggled");
        }
        a[_callback]("ifChanged")[_callback]("if" + t(f))
      }
    }

    var m = "iCheck", C = m + "-helper", r = "radio", k = "checked",
        y = "un" + k, n = "disabled";
    _determinate = "determinate";
    _indeterminate = "in" + _determinate;
    _update = "update";
    _type = "type";
    _click = "click";
    _touch = "touchbegin.i touchend.i";
    _add = "addClass";
    _remove = "removeClass";
    _callback = "trigger";
    _label = "label";
    _cursor = "cursor";
    _mobile = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(
        navigator.userAgent);
    f.fn[m] = function (a, b) {
      var d = 'input[type="checkbox"], input[type="' + r + '"]', c = f(),
          g = function (a) {
            a.each(function () {
              var a = f(this);
              c = a.is(d) ? c.add(a) : c.add(a.find(d))
            })
          };
      if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(
          a)) {
        return a = a.toLowerCase(), g(this), c.each(function () {
          var c =
              f(this);
          "destroy" == a ? E(c, "ifDestroyed") : A(c, !0, a);
          f.isFunction(b) && b()
        });
      }
      if ("object" != typeof a && a) {
        return this;
      }
      var e = f.extend({
            checkedClass: k,
            disabledClass: n,
            indeterminateClass: _indeterminate,
            labelHover: !0
          }, a), l = e.handle, v = e.hoverClass || "hover",
          s = e.focusClass || "focus", t = e.activeClass || "active",
          B = !!e.labelHover, w = e.labelHoverClass || "hover",
          p = ("" + e.increaseArea).replace("%", "") | 0;
      if ("checkbox" == l || l == r) {
        d = 'input[type="' + l + '"]';
      }
      -50 > p && (p = -50);
      g(this);
      return c.each(function () {
        var a = f(this);
        E(a);
        var c = this,
            b = c.id, g = -p + "%", d = 100 + 2 * p + "%", d = {
              position: "absolute",
              top: g,
              left: g,
              display: "block",
              width: d,
              height: d,
              margin: 0,
              padding: 0,
              background: "#fff",
              border: 0,
              opacity: 0
            }, g = _mobile ? {position: "absolute", visibility: "hidden"} : p ? d
            : {position: "absolute", opacity: 0},
            l = "checkbox" == c[_type] ? e.checkboxClass || "icheckbox"
                : e.radioClass || "i" + r,
            z = f(_label + '[for="' + b + '"]').add(a.closest(_label)),
            u = !!e.aria, y = m + "-" + Math.random().toString(36).substr(2, 6),
            h = '<div class="' + l + '" ' + (u ? 'role="' + c[_type] + '" '
                : "");
        u && z.each(function () {
          h +=
              'aria-labelledby="';
          this.id ? h += this.id : (this.id = y, h += y);
          h += '"'
        });
        h = a.wrap(h + "/>")[_callback]("ifCreated").parent().append(e.insert);
        d = f('<ins class="' + C + '"/>').css(d).appendTo(h);
        a.data(m, {o: e, s: a.attr("style")}).css(g);
        e.inheritClass && h[_add](c.className || "");
        e.inheritID && b && h.attr("id", m + "-" + b);
        "static" == h.css("position") && h.css("position", "relative");
        A(a, !0, _update);
        if (z.length) {
          z.on(_click + ".i mouseover.i mouseout.i " + _touch,
              function (b) {
                var d = b[_type], e = f(this);
                if (!c[n]) {
                  if (d == _click) {
                    if (f(b.target).is("a")) {
                      return;
                    }
                    A(a, !1, !0)
                  } else {
                    B && (/ut|nd/.test(d) ? (h[_remove](v), e[_remove](w))
                        : (h[_add](v), e[_add](w)));
                  }
                  if (_mobile) {
                    b.stopPropagation();
                  } else {
                    return !1
                  }
                }
              });
        }
        a.on(_click + ".i focus.i blur.i keyup.i keydown.i keypress.i",
            function (b) {
              var d = b[_type];
              b = b.keyCode;
              if (d == _click) {
                return !1;
              }
              if ("keydown" == d && 32 == b) {
                return c[_type] == r && c[k]
                || (c[k] ? q(a, k) : x(a, k)), !1;
              }
              if ("keyup" == d && c[_type] == r) {
                !c[k] && x(a,
                    k);
              } else if (/us|ur/.test(d)) {
                h["blur" == d ? _remove : _add](
                    s)
              }
            });
        d.on(_click + " mousedown mouseup mouseover mouseout " + _touch,
            function (b) {
              var d =
                  b[_type], e = /wn|up/.test(d) ? t : v;
              if (!c[n]) {
                if (d == _click) {
                  A(a, !1, !0);
                } else {
                  if (/wn|er|in/.test(d)) {
                    h[_add](e);
                  } else {
                    h[_remove](
                        e + " " + t);
                  }
                  if (z.length && B && e == v) {
                    z[/ut|nd/.test(d) ? _remove
                        : _add](w)
                  }
                }
                if (_mobile) {
                  b.stopPropagation();
                } else {
                  return !1
                }
              }
            })
      })
    }
  })(JQuery);
  //输出接口
  exports('icheck', null);
}).addcss('modules/icheck/icheck.css', 'skinicheckcss');